package gerador.painel;


import gerador.GeradorArquivos;

import java.util.ArrayList;
import java.util.List;

import scr.Tabela;

public class GerarBEAN {

	public static void iniciar(List<Tabela> tabelas) {
	
		for (Tabela t : tabelas) {
			List<String> bean = new ArrayList<String>();
						bean.add("package revert.JSP;");
						
						bean.add("public class "+t.getNomeJava()+"Bean extends Bean {");
						bean.add("	");
						bean.add("private "+t.getNomeJava()+" "+t.getNomeBanco()+" = new "+t.getNomeJava()+"();");
						bean.add("private "+t.getNomeJava()+" selecionado = new "+t.getNomeJava()+"();");
						bean.add("private List<"+t.getNomeJava()+"> "+t.getNomeBanco()+"Lista;");
						bean.add("private "+t.getNomeJava()+"DAO dao ;");
						bean.add("private boolean listar = true ;");
						bean.add("private boolean incluir = false ;");
						bean.add("private boolean editar = false ;");
						
						bean.add("	");
						
						bean.add("public "+t.getNomeJava()+"Bean() {	");
						bean.add("	listar();	");
						bean.add("}	");
						
						
						bean.add("		public String editar() {");
						bean.add("		dao = new "+t.getNomeJava()+"DAO();");
						bean.add("		try {");
						bean.add("			set"+t.getNomeJava()+"(dao.update(get"+t.getNomeJava()+"()));");
						bean.add("			get"+t.getNomeJava()+"().getId();");
						bean.add("				setListar(true);");
						bean.add("				set"+t.getNomeJava()+"(new "+t.getNomeJava()+"());");
						bean.add("					");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"editar"+t.getNomeJava()+"\", e);");
						bean.add("			return \"invalido\";");
						bean.add("		}");
						bean.add("		return \"alterar\";");
						
						bean.add("	}");
						bean.add("	");
						bean.add("	public String incluir(){");
						bean.add("		set"+t.getNomeJava()+"(new "+t.getNomeJava()+"() );");
						bean.add("		setIncluir(true);");
						bean.add("		return \"incluir\";");
						bean.add("	}");
						bean.add("	");
						bean.add("	public String salvar() {");
						bean.add("		dao = new "+t.getNomeJava()+"DAO();");
						bean.add("		try {");
						bean.add("			set"+t.getNomeJava()+"(dao.insert(get"+t.getNomeJava()+"()));");
						bean.add("			get"+t.getNomeJava()+"().getId();");
						bean.add("			setListar(true);");
						bean.add("			set"+t.getNomeJava()+"(new "+t.getNomeJava()+"());");
						bean.add("			listar();");
						bean.add("			setAlerta(Constantes.MSNSALVAR);");
						bean.add("");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"incluir"+t.getNomeJava()+"\", e);");
						bean.add("		return \"invalido\";");
						bean.add("		}	");
						bean.add("		return \"salvar\";");
						bean.add("	}");
						bean.add("	");
						bean.add("	public String listar() {");
						bean.add("		setListar(true);");
						bean.add("		dao = new "+t.getNomeJava()+"DAO();");
						bean.add("		try {");
						bean.add("			"+t.getNomeBanco()+"Lista = dao.selectLazy(new "+t.getNomeJava()+"());");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"listar"+t.getNomeJava()+"\", e);");
						bean.add("			return \"invalido\";");
						bean.add("		}");
						bean.add("		return \"listar\";");
						bean.add("	}");
						bean.add("	");
						bean.add("	public String selecionar() {");
						bean.add("			dao = new "+t.getNomeJava()+"DAO();");
						bean.add("		try {");
						bean.add("			selecionado = dao.select(get"+t.getNomeJava()+"().getId());");
						bean.add("			set"+t.getNomeJava()+"(selecionado);");
						bean.add("			setEditar(true);");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"listar"+t.getNomeJava()+"\", e);");
						bean.add("			return \"invalido\";");
						bean.add("		}");
						bean.add("		return \"selecionar\";");
						bean.add("	}");
						bean.add("");
						bean.add("	public String excluir() {");
						bean.add("		dao = new "+t.getNomeJava()+"DAO();");
						bean.add("			");
						bean.add("			try {");
						bean.add("			dao.delete(get"+t.getNomeJava()+"().getId());");
						bean.add("			listar();");
						bean.add("			setAlerta(Constantes.MSNEXCLUSAO);");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"listar"+t.getNomeJava()+"\", e);");
						bean.add("			return \"invalido\";");
						bean.add("		}");
						bean.add("		return \"excluir\";");
						bean.add("	}");
						bean.add("");
						bean.add("	public String localizar() {");
						bean.add("		dao = new "+t.getNomeJava()+"DAO();");
						bean.add("		try {");
						bean.add("			"+t.getNomeBanco()+"Lista = dao.selectLazy(get"+t.getNomeJava()+"());");
						bean.add("			if("+t.getNomeBanco()+"Lista.size()==0){");
						bean.add("				setAlerta(Constantes.MSNZEROREGISTRO);");
						bean.add("			}else if("+t.getNomeBanco()+"Lista.size()==1){");
						bean.add("				setAlerta(Constantes.MSNUMREGISTRO);");
						bean.add("			}else{");
						bean.add("				setAlerta("+t.getNomeBanco()+"Lista.size() + \" \"+Constantes.MSNENCONTRADOS);");
						bean.add("			}");
						bean.add("		} catch (Exception e) {");
						bean.add("			GeradorArquivos.criarLog(\"listar"+t.getNomeJava()+"\", e);");
						bean.add("			return \"invalido\";");
						bean.add("		}");
						bean.add("		return \"localizar\";");
						bean.add("	}");
						bean.add("	");
						
						
						
						bean.add("public void set"+t.getNomeJava()+"("+t.getNomeJava()+" "+t.getNomeBanco()+") {");
						bean.add("	this."+t.getNomeBanco()+" = "+t.getNomeBanco()+";");
						bean.add("}");
						bean.add("");
						bean.add("public "+t.getNomeJava()+" get"+t.getNomeJava()+" (){");
						bean.add("	return "+t.getNomeBanco()+";");
						bean.add("}");
						bean.add("");
						bean.add("public void setSelecionado("+t.getNomeJava()+" selecionado) {");
						bean.add("	this.selecionado = selecionado;");
						bean.add("}");
						bean.add("		");					
						bean.add("public "+t.getNomeJava()+" getSelecionado() {");
						bean.add("	return selecionado;");
						bean.add("}");
						bean.add("	");
						
						
						bean.add("public List<"+t.getNomeJava()+"> get"+t.getNomeJava()+"Lista() {");
						bean.add("	return "+t.getNomeBanco()+"Lista;");
						bean.add("}");
						bean.add("");
						bean.add("public void set"+t.getNomeJava()+"Lista(List<"+t.getNomeJava()+"> "+t.getNomeBanco()+"Lista) {");
						bean.add("	this."+t.getNomeBanco()+" = "+t.getNomeBanco()+";");
						bean.add("}");
						
						
						bean.add("public boolean isListar() {");
						bean.add("	return listar;");
						bean.add("}");
						bean.add("");
						bean.add("public void setListar(boolean listar) {");
						bean.add("	this.editar = false;");
						bean.add("	this.incluir = false;");
						bean.add("	this.listar = listar;");
						bean.add("}");
						bean.add("	");
						bean.add("public boolean isEditar() {");
						bean.add("	return editar;");
						bean.add("}");
						bean.add("");
						bean.add("public void setEditar(boolean editar) {");
						bean.add("	this.listar = false;");
						bean.add("	this.incluir = false;");
						bean.add("	this.editar = editar;");
						bean.add("}");
						bean.add("	");
						bean.add("public boolean isIncluir() {");
						bean.add("	return incluir;");
						bean.add("}");
						bean.add("");
						bean.add("public void setIncluir(boolean incluir) {");
						bean.add("	this.editar = false;");
						bean.add("	this.listar = false;");
						bean.add("	this.incluir = incluir;");
						bean.add("}");
						bean.add("	");
						bean.add("}");
						bean.add("	");
						bean.add("	");
						bean.add("/* deve ser colado no bean principal");
						bean.add("public void entrar"+t.getNomeJava()+"(){");
						bean.add("	limpar();");
						bean.add("	set"+t.getNomeJava()+"Pesquisa(true);");
						bean.add("	");
						bean.add("}");
						bean.add("*/");
						bean.add("	");
						bean.add("/*deve ser colocado no menu ");
						bean.add("<h:commandLink  action=\"#{produtoBean.entrar"+t.getNomeJava()+"}\">");
						bean.add("	<img src=\"./styles/images/add.gif\" class=\"imagem\" title=\"Lista "+t.getNomeJava()+"\">");
						bean.add("</h:commandLink>");
						bean.add("*/");
						bean.add("	");
						bean.add("/*deve ser colocado no painel principal ");
						bean.add("<rich:panel styleClass=\"panel\" rendered=\"#{produtoBean."+t.getNomeBanco()+"Pesquisa}\">");
						bean.add("	<jsp:directive.include file=\"../pages/"+t.getNomeBanco()+".jsp\" />");
						bean.add("</rich:panel>");
						bean.add("*/");
						bean.add("}");
					
						
						
						
						
						GeradorArquivos.criarBEAN(t.getNomeJava()+"Bean.java", bean);
			
		}
		
		
		
		
		
	}
	


}
